import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;  // (Date)
/**
 * Clase que representa un cronometro
 * 
 * @author (Programacion Orientada A Objetos - Gonzalez Donat - Neri Andriano) 
 * @version (9/05/12)
 */
public class Cronometro extends Actor
{
    private Date cont;      //hace referencia a un objeto de tipo Date para almacenar el tiempo inicial
    private Date cont2;     //hace referencia a un objeto de tipo Date para almacenar el tiempo final
    private int valor;      //valor inicial en que empezara el cronometro
    /**
     * Constructor para la clase Cronometro
     */
    public Cronometro()
    {
        cont = null;
        this.setImage(new GreenfootImage(
                          " Tiempo ",
                          30,java.awt.Color.WHITE,
                          java.awt.Color.BLACK));
    }
    
    /**
     * Metodo que se encarga de mandar llamar a las
     * actualizaciones de los valores de los contadores
     */
    public void act() 
    {
        Escenario mundo;
        mundo=(Escenario)getWorld();
        if(mundo.nivel()==0)
            valor=130;
        if(mundo.nivel()==1||mundo.nivel()==2)
            valor=230;
        if(cont == null)
            this.inicializa();
            this.actualizaCrono();
    }    
    /**
     * Se encarga de inicializar el contador para tener
     * una referencia de tiempo inicial
     */
    public void inicializa()
    {
        cont = new Date();
    }
    /**
     * Actualiza el cronometro cada segundo
     */
    public void actualizaCrono()
    {
      
        cont2 = new Date();
        this.setImage(new GreenfootImage(" Tiempo "+
                           String.valueOf(valor-(cont2.getTime() - cont.getTime())/1000)+" "
                          ,30,java.awt.Color.WHITE ,java.awt.Color.BLACK));
    }
    
    /**
     * Hace el contador nulo para que vuelva a ser inicializado.
     */
    public void modifCont()
    {
        cont=null;
    }    
}